以下列出一些主要的特性,提供大家決定是否選用Angular作為開發工具的參考。
在AngularJS時代雙向綁定
會觸發稱為Dirty Checking的機制,簡單來說雙向綁定這個特性簡化了我們的程式碼編寫方式。即當View中有資料發生了變化,這個變化不用另外做處理會自動地反應到scope上,為了達到這個效果Dirty Checking迴圈可能需要不只一遍的檢查是否有models發生了變化,用的不好會成為效能殺手。
Angular是由NgZone自動控制Change Detection
機制,有效避免不必要的Dirty Checking但還是要注意,如大量雙向綁定造成的資料流混亂,渲染效能低下等問題。
熟悉
Change Detection
機制有機會可以優化渲染頁面的速度與效能,如同開手排車。
當年AngularJS特有的watcher機制可能導致效率極低的Digest Cycle,因此以前常有不要在Angular中使用jquery的說法。
一般來說Angular比較適合的專案是構建基於表單的CRUD(建立、查詢、刪除、更新)的相關應用,但其實前端框架只是工具,用的好就可以發揮框架的價值,其他類型專案也可以用,只是比較容易誤用功能導致APP效能低下。建議團隊中資深開發成員在工作流程中嚴格執行代碼審查機制,避免其他成員因為框架特性不熟而誤用,使用Angular框架累積的技術債,會在專案長大之後帶來嚴重的問題。
下一篇我們從建立Angular新專案開始順便介紹一下每個檔案的功能。
深入 Angular 的 Change Detection 機制